CloudFormationでVPCフローログ(S3出力版)を一撃で設定する
こんにちは、コカコーラ大好きカジです。
VPC Flow Logs(S3出力版)を、VPC構築済みの環境や、複数VPCに構築するときに使えるCloudFormationテンプレートを作成してみました。
VPCフローログとは
VPC Flow LogsのS3出力については以下を参照ください。
VPC Flow Logsの出力先にS3が追加になって安価に使いやすくなりました | DevelopersIO
VPC Flow LogsをCloudwatch Logsに出力したい場合は、以下のブログとなります。
CloudFormationでVPCフローログを設定する (CloudWatch版) | DevelopersIO
前提条件
利用するにあたっての前提条件は以下となります。
- VPCが構築済みであること
- 出力先S3バケット名を指定しますが、バケット名の最後にAWSアカウント番号を付与します。
- Cloudformation削除時はS3バケット内にファイルを削除済みにしないとS3バケット削除できません。必要に応じて、DeletionPolicyをつけて削除除外してください。
スタック作成
一番最後に記載した、yamlファイルで、Cloudformationスタック作成します。 以下に沿って入力すればOKです。この画面以降はデフォルトのままでOKです。
スタック作成したら、リソースが作成されたことを確認します。
設定確認
スタック作成されたら、設定を確認します。
Cloudformation テンプレート
AWSTemplateFormatVersion: "2010-09-09" Description: VPC Flow Logs S3 Output Metadata: "AWS::CloudFormation::Interface": ParameterGroups: - Label: default: "VPC Flow Logs Setup VPC ID" Parameters: - VpcId - Label: default: "VPC Flow Logs Configuration" Parameters: - Filter - Label: default: "VPC Flow Logs output S3 Buceket Name -. Account Number is set automatically." Parameters: - S3Bucket # ------------------------------------------------------------# # Input Parameters # ------------------------------------------------------------# Parameters: VpcId: Description: VPC ID Type: AWS::EC2::VPC::Id S3Bucket: Description: S3 Bucket Name Type: String Default: vpc-flow-log Filter: Type: String Default: ALL AllowedValues: [ ALL, ACCEPT, REJECT ] Resources: # ------------------------------------------------------------# # S3 Bucket for VPC Flow Logs # ------------------------------------------------------------# VPCFlowLogsS3Bucket: Type: "AWS::S3::Bucket" Properties: BucketName: !Join [ "-", [ Ref: "S3Bucket" , Ref: "AWS::AccountId" ] ] # ------------------------------------------------------------# # VPC Flow Logs # ------------------------------------------------------------# VPCFlowLogs: Type: "AWS::EC2::FlowLog" DependsOn: VPCFlowLogsS3Bucket Properties: LogDestination: !Sub "arn:aws:s3:::${VPCFlowLogsS3Bucket}" LogDestinationType: s3 ResourceId: !Ref VpcId ResourceType: "VPC" TrafficType: !Ref Filter # ------------------------------------------------------------# # Output Parameters # ------------------------------------------------------------# Outputs: #VPCFlowLogsS3Bucket VPCFlowLogsS3Bucket: Value: !Ref VPCFlowLogsS3Bucket
まとめ
複数環境で有効にする必要があり、Cloudformationを作成してみました。 どなたかのお役に立てれば光栄です。